package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;

/**
// * 演示ArrayList的用法
 * 1.构造函数
 *
 *
 * 2.成员方法
 * add()
 *
 */
public class ArrayListDemo {
    public static void main(String[] args){
//        1.创建ArrayList对象
//        底层赋值了一个空数组
        ArrayList<String> list = new ArrayList<String>();
//        2.往ArrayList集合中添加数据
        list.add("张三");//添加一个数据，在数组的尾部
        list.add(0,"李四");//添加一个数据，在数组的指定位置

        //获取数据
        String s=list.get(1);
        System.out.println(s);

        //修改数据
        list.set(0,"wangwu");
        list.remove(1);
        list.add("李四");
        list.add("王五");
        list.add("张三");

        System.out.println(list);
        System.out.println("------------------集合的遍历方法1--------------");
        //1.for循环形式
        for (int i=0;i<list.size();i++){
            String obj=list.get(i);
            System.out.println(obj);
        }
        System.out.println("------------------集合的遍历方法2--------------");
        //2.增强for循环形式
        for (String obj : list){
            System.out.println(obj);
        }
        //3.迭代器的形式
        System.out.println("------------------集合的遍历方法3--------------");
        //获取集合的迭代器对象
        Iterator<String> iterator = list.iterator();

        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        //4.Lambda表达式的方式
        System.out.println("------------------集合的遍历方法4--------------");
        //Lambda表达式本质上是一个函数
        //Consumer<String> consumer =

        list.forEach(str-> System.out.println(str));
        list.forEach(System.out::println);



    }
}
